package com.gking.centerSystem.AOP.annotationUtil.validataParam;


import java.lang.annotation.*;

/**
 * 自定义校验参数注解，校验参数值是否为空，值是否符合给定类型
 * 针对对List列表只校验是否为空，长度是否为0，不校验List项
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ValidateParam {

    Field[] value() default {};

    @Retention(RetentionPolicy.RUNTIME)
    @Target({})
    @interface Field {
        // 参数名
        String field();

        // 校验的参数来源
        ValidateTypeEnum type() default ValidateTypeEnum.TYPE_RequestBody;

        // 是否允许为空
        boolean isNull() default true;

        // 参数类型
        Class<?> classType() default Object.class;

        // 错误提示信息
        String message() default "Parameter invalid";
    }
}
